

/*Definicao da estrutura de ocorrencia dos candidatos*/
typedef struct
{
	int candidato;
	int p1;
	int p2;

} ItemOcorrencia;

typedef struct _ocorrencia
{
	ItemOcorrencia itemOcorrencia;
	struct _ocorrencia *prox;

} Ocorrencia;

typedef Ocorrencia *POcorrencia;

typedef struct {
	POcorrencia Primeiro,Ultimo;
} ListaOcorrencia;


/*controle das ocorrencias*/

int isListaOcorrenciaVazia(ListaOcorrencia L);

void criaListaOcorrenciaVazia(ListaOcorrencia *L);

void inserirPonteiroOcorrencia(ListaOcorrencia *L, POcorrencia P);

void inserirItemOcorrencia(ListaOcorrencia *L, int candidato, int p1, int p2);

POcorrencia encontrarOcorrencia(ListaOcorrencia *L, int candidato);

void inserirItemOcorrenciaPeloCandidato(ListaOcorrencia *L, int candidato, int vencedor);

void liberaOcorrencia(ListaOcorrencia L);

/*processamento das eleicoes*/

void processarEleicao(char *nomeArquivo);

int * gerarCombinacoes(ListaCandidato L, int num) ;

int *ordenar(ListaOcorrencia L, int tam, int boolean);



